import config from '@/config.js'
import common from '@/utils/wxApplet/common.js'

module.exports = (vm) => {
	// 初始化请求配置
	uni.$u.http.setConfig((defaultConfig) => {
		defaultConfig.baseURL = config.HTTP_REQUEST_URL;
		return defaultConfig
	})

	// 请求拦截
	uni.$u.http.interceptors.request.use((configs) => {
		// 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
		configs.data = configs.data || {}
		configs.header[config.TOKEN_NAME] = vm.$store.state.user.token ? vm.$store.state.user
			.token : "";
		configs.header[config.LANG_NAME] = vm.$store.state.user.locales ? vm.$store.state.user
			.locales : "";
		return configs
	}, config => {
		// 可使用async await 做异步操作
		return Promise.reject(config)
	})

	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => {
		if (response.header.token) {
			vm.$store.commit('user/set_token', response.header.token)
		}
		const data = response.data
		console.log(data.code, '看看token是否存在');
		if (data.code === 200 && data.msg === "Success") {
			return data.data === undefined ? {} : data.data
		} else if (data.code === 401) {
			vm.$store.commit('user/set_out');
			return new Promise(() => {});
		} else if (data.code > 500) {
			uni.showToast({
				icon: 'none',
				title: data.msg
			})
			return Promise.reject(data.msg)
		}
		// if (data.code == 10000) {
		// 	return data.data === undefined ? {} : data.data
		// } else if (data.code == 10006 || data.code == 10007) {
		// 	// Token已过期｜加入黑名单｜Token校验失败，则需重新进入登录页登录
		// 	common.logout();
		// 	uni.reLaunch({
		// 		url: '/pages/login/login'
		// 	});
		// 	return new Promise(() => {});
		// } else {
		// 	if (data.message === "Success") {
		// 		uni.$u.toast(data.message)
		// 	} else {
		// 		uni.$u.toast(data)
		// 	}
		// 	return new Promise(() => {});
		// }
	}, (response) => {
		// 对响应错误做点什么 （statusCode !== 200）
		console.log('响应错误=', response)
		return Promise.reject(response)
	})
}